<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui">
<ui:composition template="../templates/layout.xhtml">
<ui:define name="title">Tabla Acreedor</ui:define>
<ui:define name="content">
    <p:spacer height="5px"/>
    <p:panel>
        <h:outputText value="Tabla Acreedor"  styleClass="text_header_page"/>
    </p:panel>
    <p:spacer height="5px"/>
    <h:form id="frmPrincipal">
        <p:panel header="Carga Masiva" toggleable="true" collapsed="true">
            <h:panelGrid columns="1">
                <p:fileUpload fileUploadListener="#{maestroAcreedorJsfBean.uploadFileAction}"
                              mode="advanced" cancelLabel="Cancelar" uploadLabel="Cargar Archivo"
                              label="Seleccionar Archivo"
                              update=":messages"
                              sizeLimit="52428800"
                              allowTypes="/(\.|\/)(csv)$/"/>
                <p:spacer height="10px"/>

                <h:panelGrid id="gridBotones">
                    <p:commandButton value="Procesar" icon="ui-icon-refresh"
                                     actionListener="#{maestroAcreedorJsfBean.procesar}"

                                     ajax="true" update=":frmPrincipal:panelResultados :frmPrincipal:panelDetalle :messages"
                            />
                </h:panelGrid>
            </h:panelGrid>
        </p:panel>
        <p:panel header="Carga Masiva Documento Servicio" toggleable="true" collapsed="true">
            <h:panelGrid columns="2" >
                <p:fileUpload fileUploadListener="#{maestroAcreedorJsfBean.uploadFileAction}"
                              mode="advanced" cancelLabel="Cancelar" uploadLabel="Cargar Archivo"
                              label="Seleccionar Archivo"
                              update=":messages"
                              sizeLimit="70428800"
                              multiple="true"
                              allowTypes="/(\.|\/)(csv)$/"/>

                <p:spacer height="10px"/>

                <h:panelGrid id="gridBotonesDocumento" columns="1" style="margin-bottom:10px" >
                    <h:outputText value="Borrar Documentos Winshutle " />
                    <p:selectBooleanCheckbox label="Borrar Datos:" value="#{maestroAcreedorJsfBean.borrarValor}" />
                    <p:commandButton value="Procesar" icon="ui-icon-refresh"
                                     actionListener="#{maestroAcreedorJsfBean.procesarDocumento}"

                                     ajax="true" update=":frmPrincipal:panelResultados :frmPrincipal:panelDetalle :messages"
                            />
                </h:panelGrid>

            </h:panelGrid>
        </p:panel>
        <!-- Panel de búsqueda-->
        <p:panel id="panelBusqueda" header="Búsqueda de Acreedores" toggleable="true">
            <h:panelGrid id="gridBusqueda" columns="6">
                <p:spacer width="13px"/>
                <h:outputLabel for="cmbGrupoEmpresarial" value="Grupo Empresarial"/>
                <p:selectOneMenu id="cmbGrupoEmpresarial" converter="#{managerGrupoDTOConverter}"
                                 value="#{maestroAcreedorJsfBean.filtroBusqueda.grupoEmpresarial}"
                                 style="width:180px;">
                    <f:selectItem itemLabel="Seleccione" itemValue="" noSelectionOption="true"/>
                    <f:selectItems value="#{maestroAcreedorJsfBean.cmbGrupoEmpresarial}"
                                   var="grupoSelect"
                                   itemLabel="#{grupoSelect.nombre}"
                                   itemValue="#{grupoSelect}"/>
                    <p:ajax event="change" update=":frmPrincipal:cmbSociedad :messages" process="@this"
                            listener="#{maestroAcreedorJsfBean.onSelectGrupoEmpresarial}"/>
                </p:selectOneMenu>

                <p:spacer width="13px"/>
                <h:outputLabel for="cmbSociedad" value="Sociedad"/>
                <p:selectOneMenu id="cmbSociedad" converter="#{managerSociedadDTOConverter}"
                                 value="#{maestroAcreedorJsfBean.filtroBusqueda.sociedad}"
                                 style="width:180px;">
                    <f:selectItem itemLabel="Seleccione" itemValue="" noSelectionOption="true"/>
                    <f:selectItems value="#{maestroAcreedorJsfBean.cmbSociedad}"
                                   var="sociedadSelect"
                                   itemLabel="#{sociedadSelect.nombre}"
                                   itemValue="#{sociedadSelect}"/>
                </p:selectOneMenu>

                <p:spacer width="13px"/>

                <h:outputLabel value="Código Acreedor"/>
                <p:inputText value="#{maestroAcreedorJsfBean.filtroBusqueda.acreedorId}"
                             size="15" maxlength="15"/>

                <p:spacer width="13px"/>
                <h:outputLabel for="inputRazonSocial" value="Razón Social"/>
                <p:inputText id="inputRazonSocial" value="#{maestroAcreedorJsfBean.filtroBusqueda.razonSocial}"
                             size="30" maxlength="100"/>

				<p:spacer width="13px"/>
                               <h:outputLabel  value="Estado"/>
                <p:selectOneMenu value="#{maestroAcreedorJsfBean.filtroBusqueda.estado}" effect="fade"
                        >
                    <f:selectItem itemValue="" itemLabel="Todos"/>
                    <f:selectItems value="#{maestroAcreedorJsfBean.allEstado}"
                                   var="estadoSelect" itemLabel="#{estadoSelect.nombre}" itemValue="#{estadoSelect}"/>
                </p:selectOneMenu>


            </h:panelGrid>
            <p:spacer height="3px"/>

            <p:spacer height="3px"/>
            <h:panelGrid id="gridBusqueda3" columns="3">
                <p:commandButton ajax="true" value="Buscar" id="btnBuscar" icon="ui-icon-search"
                                 actionListener="#{maestroAcreedorJsfBean.findAction}"
                                 update=":frmPrincipal:panelResultados :frmPrincipal:panelDetalle :messages"/>
                <p:commandButton ajax="true" value="Limpiar" id="btnLimpiar" icon="ui-icon-refresh"
                                 actionListener="#{maestroAcreedorJsfBean.cleanAction}"
                                 update=":frmPrincipal:panelResultados :frmPrincipal:panelDetalle :frmPrincipal:panelBusqueda :messages"/>
            </h:panelGrid>
        </p:panel>

        <p:spacer height="10px"/>

        <!-- Panel de resultados (donde está la tabla)  -->
        <p:panel id="panelResultados" header="Resultados">
            <p:toolbar>

                <p:toolbarGroup align="left">
                    <p:commandButton value="Nuevo" ajax="true"
                                     actionListener="#{maestroAcreedorJsfBean.showNewDialog}"
                                     oncomplete="wvCreateDialog.show()" update=":createDialog"/>
                    <p:commandButton id="editButton" value="Editar"
                                     actionListener="#{maestroAcreedorJsfBean.showEditDialog}"
                                     update=":createDialog :messages">
                        <f:attribute name="tableName" value="tablaRegistros"/>
                        <f:attribute name="dialogName" value="wvCreateDialog"/>
                    </p:commandButton>
                    <p:commandButton id="deleteButton" value="Eliminar"
                                     actionListener="#{maestroAcreedorJsfBean.showDeleteDialog}"
                                     update=":createDialog :messages">
                        <f:attribute name="tableName" value="tablaRegistros"/>
                        <f:attribute name="dialogName" value="wvDeleteDialog"/>
                    </p:commandButton>
                </p:toolbarGroup>

            </p:toolbar>


            <p:dataTable id="tablaRegistros" value="#{maestroAcreedorJsfBean.lazyModel}" lazy="true"
                         var="registro" rowKey="#{registro.acreedorId}" paginator="true" rows="10"
                         paginatorPosition="bottom" emptyMessage="No existen registros"
                         selection="#{maestroAcreedorJsfBean.nuevoRegistro}"
                         selectionMode="single"
                         paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                         rowsPerPageTemplate="5,10,25,50">
                <p:ajax event="rowSelect" listener="#{maestroAcreedorJsfBean.onSelectDetail}"
                        update=":frmPrincipal:panelDetalle"/>
                <p:column style="text-align: left">
                    <f:facet name="header">
                        <h:outputText value="Cod. Acreedor"/>
                    </f:facet>
                    <h:outputText value="#{registro.acreedorId}"/>
                </p:column>
                <p:column style="text-align: left">
                    <f:facet name="header">
                        <h:outputText value="Razón Social"/>
                    </f:facet>
                    <h:outputText value="#{registro.razonSocial}"/>
                </p:column>
                <p:column style="text-align: left">
                    <f:facet name="header">
                        <h:outputText value="Estado"/>
                    </f:facet>
                    <h:outputText value="#{registro.estado.nombre}"/>
                </p:column>
                <p:column style="text-align: left;width: 80px">
                    <f:facet name="header">
                        <h:outputText value="Creado Por"/>
                    </f:facet>
                    <h:outputText value="#{registro.creadoPor}"/>
                </p:column>
                <p:column style="text-align: left;width: 80px">
                    <f:facet name="header">
                        <h:outputText value="Fecha Creación"/>
                    </f:facet>
                    <h:outputText value="#{registro.fechaCreacion}">
                        <f:convertDateTime pattern="dd/MM/yyyy" timeZone="America/Lima" type="both"/>
                    </h:outputText>
                </p:column>
            </p:dataTable>
        </p:panel>
        <br/>

        <p:panel id="panelDetalle" header="Sociedades" toggleable="true">
            <p:dataTable id="tablaDetalle" value="#{maestroAcreedorJsfBean.detalle}"
                         var="registroDetalle" rowKey="#{registroDetalle.sociedadId}" paginator="true" rows="5"
                         paginatorPosition="bottom" emptyMessage="No existen registros"
                         paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                         rowsPerPageTemplate="5,10,25,50">

                <p:column style="text-align: left">
                    <f:facet name="header">
                        <h:outputText value="Grupo Empresarial"/>
                    </f:facet>
                    <h:outputText value="#{registroDetalle.grupoEmpresarialNombre}"/>
                </p:column>
                <p:column style="text-align: left">
                    <f:facet name="header">
                        <h:outputText value="Código"/>
                    </f:facet>
                    <h:outputText value="#{registroDetalle.sociedadId}"/>
                </p:column>
                <p:column style="text-align: left">
                    <f:facet name="header">
                        <h:outputText value="Sociedad"/>
                    </f:facet>
                    <h:outputText value="#{registroDetalle.sociedad.nombre}"/>
                </p:column>
                <p:column style="text-align: left;width: 80px">
                    <f:facet name="header">
                        <h:outputText value="Creado Por"/>
                    </f:facet>
                    <h:outputText value="#{registroDetalle.creadoPor}"/>
                </p:column>
                <p:column style="text-align: left;width: 80px">
                    <f:facet name="header">
                        <h:outputText value="Fecha Creación"/>
                    </f:facet>
                    <h:outputText value="#{registroDetalle.fechaCreacion}">
                        <f:convertDateTime pattern="dd/MM/yyyy" timeZone="America/Lima" type="both"/>
                    </h:outputText>
                </p:column>
                <p:column headerText="Relacionado" style="text-align: center">
                    <p:selectBooleanCheckbox value="#{registroDetalle.relacionadoBl}" disabled="true">
                    </p:selectBooleanCheckbox>
                </p:column>
            </p:dataTable>
        </p:panel>

    </h:form>
</ui:define>

<ui:define name="modal">
    <p:dialog closeOnEscape="true" id="createDialog" header="Nuevo Acreedor" modal="true"   onShow="upperInput();"
              widgetVar="wvCreateDialog" resizable="false" showEffect="fade" hideEffect="fade">

        <p:ajax event="close" update=":frmPrincipal:panelResultados :createDialog"
                listener="#{maestroAcreedorJsfBean.handleDialogClose}"/>

        <p:panel id="NuevoRegistro">
            <h:form id="nuevoRegistroForm">
                <h:panelGrid id="gridBusquedaDialog" columns="3">

                    <h:outputLabel for="inputCodigo" value="Código Acreedor"/>
                    <p:inputText id="inputCodigo" value="#{maestroAcreedorJsfBean.nuevoRegistro.acreedorId}"
                                 size="15" maxlength="15" required="true" requiredMessage="*" style="width: 100px"/>
                    <p:message for="inputCodigo" display="text"/>

                    <h:outputLabel for="inputRazonSocial" value="Razón Social"/>
                    <p:inputText id="inputRazonSocial" value="#{maestroAcreedorJsfBean.nuevoRegistro.razonSocial}"
                                 size="50" maxlength="100" required="true" requiredMessage="*"/>
                    <p:message for="inputRazonSocial" display="text"/>

                    <h:outputLabel for="inputEstado" value="Estado"/>
                    <p:selectOneMenu id="inputEstado" value="#{maestroAcreedorJsfBean.nuevoRegistro.estado}" effect="fade"
                                     required="true" requiredMessage="*"
                            >
                        <f:selectItem itemValue="" itemLabel="Seleccione"/>
                        <f:selectItems value="#{maestroAcreedorJsfBean.allEstado}"
                                       var="estadoSelect" itemLabel="#{estadoSelect.nombre}" itemValue="#{estadoSelect}"/>
                    </p:selectOneMenu>
                    <p:message for="inputEstado" display="text"/>


                </h:panelGrid>
                <p:panel id="panelCrearDetalle" header="Sociedades">
                    <p:toolbar>
                        <p:toolbarGroup align="left">
                            <p:commandButton value="Agregar" ajax="true"
                                             actionListener="#{maestroAcreedorJsfBean.showNewDialogSeleccion}"
                                             oncomplete="wvSeleccionDialog.show()" update=":seleccionDialog"/>

                            <p:commandButton value="Eliminar" ajax="true"
                                             actionListener="#{maestroAcreedorJsfBean.deleteDetailAction}"
                                             update=":nuevoRegistroForm:tablaCuentaDetalle"/>
                        </p:toolbarGroup>
                    </p:toolbar>
                    <p:dataTable id="tablaCuentaDetalle" value="#{maestroAcreedorJsfBean.nuevoRegistro.acreedorSociedad}"
                                 var="item" rowKey="#{item.sociedadId}" paginator="true" rows="10"
                                 selection="#{maestroAcreedorJsfBean.nuevoRegistroDetalle}"
                                 selectionMode="single"
                                 paginatorPosition="bottom" emptyMessage="No existen registros"
                                 paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                                 rowsPerPageTemplate="5,10,25,50">

                        <p:column style="text-align: left">
                            <f:facet name="header">
                                <h:outputText value="Grupo Empresarial"/>
                            </f:facet>
                            <h:outputText value="#{item.sociedad.grupoEmpresarial.nombre}"/>
                        </p:column>
                        <p:column style="text-align: left">
                            <f:facet name="header">
                                <h:outputText value="Código"/>
                            </f:facet>
                            <h:outputText value="#{item.sociedad.sociedadId}"/>
                        </p:column>
                        <p:column style="text-align: left">
                            <f:facet name="header">
                                <h:outputText value="Sociedad"/>
                            </f:facet>
                            <h:outputText value="#{item.sociedad.nombre}"/>
                        </p:column>
                        <p:column headerText="Relacionado" style="text-align: center">
                            <p:selectBooleanCheckbox value="#{item.relacionadoBl}">
                            </p:selectBooleanCheckbox>
                        </p:column>
                    </p:dataTable>
                </p:panel>
                <p:spacer height="3px"/>
                <h:panelGrid id="gridBusqueda3Dialog" columns="2" styleClass="centered">
                    <p:commandButton ajax="true" value="Guardar" id="btnGuardar"
                                     actionListener="#{maestroAcreedorJsfBean.persistAction}"
                                     update=":frmPrincipal:panelResultados :messages  :NuevoRegistro">
                        <f:attribute name="dialogName" value="wvCreateDialog"/>
                    </p:commandButton>
                    <p:commandButton ajax="true" value="Cancelar" id="btnCancelar" onclick="wvCreateDialog.hide()"
                                     type="button"
                                     immediate="true" process="@none"/>
                </h:panelGrid>
            </h:form>
        </p:panel>
    </p:dialog>

    <p:dialog closeOnEscape="true" id="seleccionDialog" header="Sociedades"  modal="true" onShow="upperInput();"
              widgetVar="wvSeleccionDialog" resizable="false" showEffect="fade" hideEffect="fade">
        <p:panel id="Seleccionar">
            <h:form id="frmSeleccionarSociedad">
                <!-- Panel de búsqueda-->
                <p:panel id="seleccionarPanelBusqueda" header="Búsqueda de Sociedades">
                    <h:panelGrid id="gridBusqueda" columns="9">
                        <h:outputLabel for="cmbGrupoEmpresarial" value="Grupo Empresarial"/>
                        <p:selectOneMenu id="cmbGrupoEmpresarial" converter="#{managerGrupoDTOConverter}"
                                         value="#{maestroAcreedorJsfBean.filtroPick.grupoEmpresarial}"
                                         style="width:180px;">
                            <f:selectItem itemLabel="Todos" itemValue="" noSelectionOption="true"/>
                            <f:selectItems value="#{maestroAcreedorJsfBean.cmbGrupoEmpresarial}"
                                           var="grupoSelect"
                                           itemLabel="#{grupoSelect.nombre}"
                                           itemValue="#{grupoSelect}"/>
                        </p:selectOneMenu>
                    </h:panelGrid>
                    <p:spacer height="3px"/>

                    <p:spacer height="3px"/>
                    <h:panelGrid id="gridBusqueda3Seleccionar" columns="3">
                        <p:commandButton ajax="true" value="Buscar" id="btnBuscar" icon="ui-icon-search"
                                         actionListener="#{maestroAcreedorJsfBean.findActionSelect}"
                                         update=":frmSeleccionarSociedad:panelResultadosSeleccionar :messages"/>
                        <p:commandButton ajax="true" value="Limpiar" id="btnLimpiar" icon="ui-icon-refresh"
                                         actionListener="#{maestroAcreedorJsfBean.cleanActionSelect}"
                                         update=":frmSeleccionarSociedad:panelResultadosSeleccionar :messages"/>
                    </h:panelGrid>
                </p:panel>

                <p:spacer height="10px"/>

                <!-- Panel de resultados (donde está la tabla)  -->
                <p:panel id="panelResultadosSeleccionar" header="Resultados">
                    <p:toolbar>

                        <p:toolbarGroup align="left">
                            <p:commandButton value="Seleccionar" ajax="true"
                                             actionListener="#{maestroAcreedorJsfBean.seleccionar}"
                                             update=":NuevoRegistro">
                                <f:attribute name="dialogName" value="wvSeleccionDialog"/>
                            </p:commandButton>
                        </p:toolbarGroup>
                    </p:toolbar>


                    <p:dataTable id="tablaRegistrosSeleccionar" value="#{maestroAcreedorJsfBean.detallePickList}"
                                 var="sociedadSelect" rowKey="#{sociedadSelect.id}" paginator="true" rows="10"
                                 paginatorPosition="bottom" emptyMessage="No existen registros"
                                 paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                                 rowsPerPageTemplate="5,10,25,50">
                        <p:column headerText="" style="text-align: center">
                            <p:selectBooleanCheckbox value="#{sociedadSelect.seleccionado}">
                            </p:selectBooleanCheckbox>
                        </p:column>
                        <p:column style="text-align: left">
                            <f:facet name="header">
                                <h:outputText value="Grupo Empresarial"/>
                            </f:facet>
                            <h:outputText value="#{sociedadSelect.grupoEmpresarialNombre}"/>
                        </p:column>
                        <p:column style="text-align: left">
                            <f:facet name="header">
                                <h:outputText value="Código"/>
                            </f:facet>
                            <h:outputText value="#{sociedadSelect.sociedadId}"/>
                        </p:column>
                        <p:column style="text-align: left">
                            <f:facet name="header">
                                <h:outputText value="Sociedad"/>
                            </f:facet>
                            <h:outputText value="#{sociedadSelect.nombre}"/>
                        </p:column>
                    </p:dataTable>
                </p:panel>
            </h:form>
        </p:panel>
    </p:dialog>

    <p:confirmDialog id="deleteDialog" widgetVar="wvDeleteDialog" message="#{messages.label_delete_record}"
                     appendToBody="true"
                     showEffect="fade" hideEffect="fade" header="#{messages.label_confirm_deletion}"
                     severity="alarm">
        <h:form id="deleteForm">
            <p:commandButton value="#{messages.label_yes}" actionListener="#{maestroAcreedorJsfBean.deleteAction}"
                             update=":frmPrincipal:panelResultados :frmPrincipal:panelDetalle :messages"
                             style="text-align:center;"
                             oncomplete="wvDeleteDialog.hide()"/>
            <p:commandButton value="#{messages.label_no}" onclick="wvDeleteDialog.hide()" type="button"
                             style="text-align:center;"
                             immediate="true" process="@none"/>
        </h:form>
    </p:confirmDialog>

</ui:define>
</ui:composition>
</html>